Så jag har problem med att räkna ut rätt användning av list :: sort () när det gäller en lista med structts. Här är den relevanta koden: struct student { röding firstnm [20], lastnm [20]; int id, kvalitet; }; listasList; // Irrelevant kod ... cout << "Ange ditt eget namn, id och betyg. (Ex: myfirst mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grad; sList.push_back (data); sList.sort (); Problemet jag försöker lösa är att använda sList.sort () för att sortera efter id. Jag har dock ingen aning om hur jag ska skicka det ordentligt till list :: sort (). Tack på förhand för all hjälp / tid! EDIT: Lösningen var helt enkelt att lägga till detta i min struktur bool operator <(const student & cmp) const { retur-id
2021-01-22 08:21:38
Du bör titta på std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Det finns flera definitioner av den funktionen och en där du kan ange vad du vill sortera. Titta också på det inlägget, jag tror att det är vad du behöver: https://stackoverflow.com/a/21234017/6663947 Redigera: det är ett exempel på komparatorn: sList.sort ([] (const student & a, const student & b) {return a.idvoid sort (Jämför komp.); Förutsatt att du vill sortera studentobjekten i din lista enligt nyckel-id i stigande ordning. Du kan antingen definiera operatör